Read tables and read macros

Read tables package a number of parameters for use by programs which parse, generate, or otherwise manipulate external syntax of programs and objects. In particular, every read table contains a table which maps characters to objects which describe their lexical properties.

There is a standard read table which contains the standard read syntax for all characters. In order to define nonstandard read syntax, one must create a new read table using MAKE-READ-TABLE, and arrange for READ-OBJECT to use the new read table instead of the standard read table, e.g. by doing (SET (PORT-READ-TABLE ... ) ... ).


\begin{inset}{}
Creates a new read table which is a copy of {\it read-table\/}.
...
...AKE-READ-TABLE STANDARD-READ-TABLE '*MY-READ-TABLE*))
\end{tabbing}}
\end{inset}


\begin{inset}{}
The standard {\bf T} read table.
\end{inset}


\begin{inset}{}
The value of {\tt VANILLA-READ-TABLE} is a read table in which a...
...) \- \\
$\Longrightarrow$\ (FOO \char93 [Symbol ()])
\end{tabbing}}
\end{inset}

Settable


\begin{inset}{}
Access {\it character\/}'s read syntax in {\it table\/}.
The ent...
...a read table
are immutable, and so their entries may not be changed.
\end{inset}


\begin{inset}{}
Read macros should return this object, which is treated speciall...
...slash$}NEWLINE) NOTHING-READ) \\
(ELSE (LOOP)))))))
\end{tabbing}}
\end{inset}

Operation


\begin{inset}{}
If an object which returns true to the {\tt DELIMITING-READ-MACR...
...
\ldots\ ) \\
((DELIMITING-READ-MACRO? SELF) T)))
\end{tabbing}}
\end{inset}


\begin{inset}{}
The two procedures {\tt MAKE-LIST-READER} and {\tt LIST-TERMINAT...
...handle the {\tt DELIMITING-READ-MACRO?}
operation by returning true.
\end{inset}


\begin{inset}{}
Given a list reader, returns its list terminator. See {\tt LIST-READER},
above.
\end{inset}